=============================================== | M A X E S S Lite 1.1 | | | | Copyright (C) June 1994, HelgaSoft | =============================================== Last updated 06/24/1994 Table of contents 1. Overview 2. Installation and Test run 3. Setup/Maintenance 4. Menus 5. Table queries 6. Security 7. Runtime errors 8. Limitations and recommendations 9. Differences between Lite and Retail versions of Maxess 10. Future enhancements 11. License and warranty 12. Ordering and support Appendix A. Phone Monitor program 1. OVERVIEW Maxess 1.1 is a communication utility for Microsoft Access. It combines the power of the Access SQL engine with the superior communication capabilities of Procomm+ for Windows. Maxess users can remotely browse Access tables, conduct multi-field queries, send/receive files and messages to/from other users. Maxess might be considered as an integration of a BBS (Bulletin Board System) with an on-line database. The next version of Maxess will include also remote record update in Access tables. Security codes are assigned to all users allowing them to view or search selected tables and fields from the host Access database. These codes also determine the user's access to file areas and his ability to upload/download files. Maxess interface is character-based, remote users do not need an additional Windows client program to connect to the host. The only requirement for them is to have a computer and a modem with communication software. The search capabilities of Maxess make it suitable for a wide range of applications - 24 hours remote inventory/price/order monitoring, automated customer support, document retrieval, catalog and reservation systems, etc. Requirements Hardware : IBM PC 386 (or compatible), hard disk, VGA monitor, modem(s) Software : MS-Windows 3.1 or higher MS-Access 1.1 or higher Procomm Plus for Windows 1.00 or higher (Datastorm) 2. INSTALLATION AND TEST RUN Maxess integrates two software packages - MS Access and Procomm Plus. The installation consists of four simple procedures: Step 1 creates a storage place for Maxess files, Step 2 is the decompression, Step 3 is the Procomm+ part of the installation and Step 4 is the installation in Access. Step 1: Create a new directory (like C:\MAXESS) on your hard disk Step 2: Copy the self-extracting file MAXESS.EXE in the new directory and run it. The following files will be created: MAXESSIN.WAX - Maxess installation Procomm+ script MAXESS.WAX - Maxess main executable Procomm+ script MAXESSF.WAX - file subsystem script (called by MAXESS.WAX) MAXESS.INI - initialization (parameter) file for MAXESS.WAX MAXESS.MDA - MS-Access library with service functions MAXESS.TXT - This file MBBSUSER.DOC - Help file for Maxess BBS users MAXESS.ICO - icon MAXESS.XXX - user news file (optional: rename to .NWS) MAXESSPM.XXX - phone monitor program (optional: rename to .WAX) rem: The last two files are intentionally renamed with extension XXX. They are optional and might be used if their original names are restored. For more info on MAXESSPM see Appendix A. Step 3: Start Procomm Plus for Windows. Run MAXESSIN.WAX. You will be asked to enter several setup parameters (see below). The program tries to update MSACCESS.INI (or MSACC20.INI) in the Windows directory. Two lines are added: section [Libraries] \MAXESS.MDA=ro section [Menu Add-Ins] &MaxessInstall==Maxess_Install("\MAXESS.INI") Step 4: Start Microsoft Access and open the database you will be using with Maxess. Maxess relies on the DDE capabilities of Access. To make sure DDE is enabled, do the following in Access: - from the menu bar select View -> Options -> General - verify and set, if necessary: Ignore DDE requests = NO OLE/DDE timeout (sec) = 30 - click on Help (or File/Add-Ins in Access 2.0). Select "Maxess Install" from the pull-down menu. Five Maxess service tables will be created automatically in your database. Confirm all subsequent prompts, if any. Test Run: The five service tables created in Step 4 contain sample records. They can be used to test-run Maxess. From the Script menu option in Procomm+ select "Run.." then enter MAXESS.WAX . The Maxess main window will be displayed with 3 buttons: Stop, View-Log-File and Local-Login. Click on Local-Login, then input "WWW" as username and "WWWW" as password. The Maxess Main Menu appears, allowing you to test all commands except file transfer. Local-Login is used to simulate remote activity with the system. Use the Stop button to halt Maxess. MAXESSIN Parameters (Step 3): Welcome Message - this will be the initial greeting message of your BBS Upload Directory - this will be the directory reserved for user file uploads. Enter the full directory path starting with the drive letter. The disk drive must have at least 200KB free storage space Database filename - enter the filename (full directory path) of the Access database you will be using with Maxess Seconds per day - this is the time limit for daily usage of MAXESS in seconds regardless of the user security code Seconds idle wait - this is the time Maxess will wait for a character to be typed at the remote (user) site. If no character is received during this time, a warning message will be send to the user. He will have to respond in one minute, or be disconnected. Max File NoXfer - a security code equal or greater than the number specified here will allow the user to upload/download files. Lower security codes disallow file transfer. By setting the value to 32700 - the max security code, you can disable file transfer for all users rem: All parameter values are stored in the MAXESS.INI file and can be easily modified later with MAXESSIN or a text editor like Notepad. 3. SETUP/MAINTENANCE During Maxess installation, the five service tables are filled with sample records. They serve as example and also allow immediate testing of Maxess functions. However, in order to prepare your own system, these records have to be deleted. The explanations below show how to set up your own tables and perform the maintenance of your BBS. 3.1 Table Users: ----------------- You may start with an empty Users table the first time you run Maxess. New users will fill in their own personal data during normal registration. There is an exception - "SYSOP" is a reserved username and can be entered only directly in table Users, not through Maxess. Usually, after a new user record has been created, the sysop might want to modify 3 fields - Security (dflt=0), Picture (dflt="PictFile") and DExp (dflt=30 days after DReg). Security - used in Lite only to determine file transfer privilege see section "Security" Picture - if the user is authorized to upload his own picture, the sysop could transfer it to a special "pictures" directory. Then he can enter the full filename in the field Picture of the user's record. The next time the user calls, his picture will appear in the main Maxess window. IMPORTANT: Only bitmap (.BMP) picture files are accepted DExp - the expiration date is set automatically to 30 days after the date of registration. It might be changed to a different date at any time 3.2 Table TableList: --------------------- The service table TableList determines which tables from your database will be accessible to Maxess users. Tables not defined in TableList will be inaccessible to the remote user. Security: this field corresponds to field "Security" from table Users. Not used in Lite, see section "Security" TableName: This string has to correspond exactly to a table name from your database. PrnStr: When a table query is performed, the records found have to be displayed on the user's monitor. In PrnStr you can select which record fields to be displayed and in what order. The field names in Prnstr are separated by commas. Field names with spaces have to be enclosed in square brackets (ex. [Weather Forecast] ). Prnstr defines also the query output format, see "Query output". WidStr: Here are defined the display widths of all fields from PrnStr. The field widths should be listed in the same order as the fields in PrnStr, separated by commas. The total is a sum of all field widths plus the number of fields (field columns are followed by one space). The recommended total is 80 chars, maximal is 132. HidStr: This is the list of the hidden fields. Each table may have some confidential information (like address/phone of customers). The sysop is able to hide certain fields from the search selection screen by listing their names in HidStr. In order to make them completely invisible to the remote user, these fieldnames shouldn't exist in PrnStr either. IMPORTANT: the last character in HidStr should be a comma! 3.3 Table FileAreas: --------------------- Area: The area name. Apostrophes or double quotation marks not allowed. Directory: The directory path related to the area name. It corresponds to the FileLocation field in table File. Securito: this field corresponds to field "Security" from table Users. If it is zero, however, the Area is accessible to all users regardless of their security code. Not used in Lite, see section "Security". 4. MENUS Maxess' interface is menu-driven. The user has to answer each menu prompt by entering one of the options presented. Here are some general rules: - Prompts terminated by a colon (:) or question mark (?) require one-key input. Usually this is the first letter of the command name, no carriage return is needed. - The angle bracket prompt (>) is answered by a string terminated with carriage return. - The user can cancel most of the prompts by pressing the ESC key - Most of the prompts have syntax control and allow the user to re-enter an incorrect answer up to three times. 4.1 Main Menu ------------- After successfully logging on and viewing the optional news file (NWS), the Main Menu is presented as follows: ______ MAXESS Main Menu ______ able selection earch in table xxx (conditional) essages iles ser setup oodbye bort MAXESS (conditional) Your Choice : able selection The user is prompted to choose one Access table on which subsequent queries with the command will be performed. The tables are numbered and the user has to select the corresponding number then press . earch in table xxx This prompt appears in the Main Menu if a table has been already selected (see "Table queries") essages Invokes the Message Menu to Read, Scan or Send a message iles Invokes the File Menu with options to Scan, Download, Upload files, change the transfer protocol and select file area. Prompts for a file specification (like DOS' DIR command) and displays a list of matching downloadable files. A user can cancel the file display by pressing N at the -MORE- prompt. Level 2 users can view any directory by including a path in the file specification. ser setup Allows user entries (like name,address) to be updated oodbye Terminates the call. The user's online time is recorded in the Users table. MAXESS then re-initializes the modem and prepares to answer the next call. 4.2 Mail Menu ------------- The Mail Menu has two options: <1> Scan/Read <2> Send ? The default for option 1 is Scan. While scanning messages, the user is able to see only their headers (from, to, subject, date), but not their content. SCAN/READ The user is prompted to choose one of the following: oggle to Read (or Scan) orward everse ew and Unread messages elective retrieve ndividual msg# /Reply/Delete Forward : Sequential multiple read. Prompts for the beginning message date and displays all accessible messages entered at this date or after. Reverse : All messages entered PRIOR to the selected date are displayed. New/Unread : Displays messages addressed to the user or to All after user's last logon date. Selective : Selective sequential multiple read. Messages might be tracked by sender/recipient, date, subject and target string in their content. All accessible messages which match the search criteria are displayed. Individual # : This option is activated only under Read. The user may read a message by entering its sequential number. This is also the only way to Reply or Delete a message. Reply is allowed if the user is the recipient of the message. Deletion is possible if the user is the sender of the message. SEND: The user is prompted for the following: To: (the intended recipient of the mail) Subj: (the subject of the mail) Private Mail(y/N) (Y for private, N for public) The user can then accept or re-enter the header information. Once the header is accepted, the user is placed in a line input mode. A line with a slash (/) represent the end of the message content. The user is presented with three choices: S)ave A)bort C)ontinue ? Save: Append the message to the mail database and return to the Messages Menu. Abort: Erase the message and return to the Messages Menu. Continue: Return to input mode. 4.3 File Menu ------------- <1> Scan/Download files: Files in the selected area(s) might be searched by partial name, size, date, keyword in their description and combinations of the above. Filenames matching the search criteria are listed and the user is offered the choice to select some of them for download. <2> Download by name: After a valid file specification is entered, the message "Begin your transfer procedure" is issued. Maxess then waits for the user to download the file using the default protocol. <3> Upload: The user is prompted file name and a short description of the file. Maxess is then waiting to receive the file. Files are placed in the upload directory which has been specified during installation. <4> Protocol select: The transfer protocol for the rest of the session may be changed with this option. To change the default protocol use ser setup from the Main Menu. <5> File area select: A choice of file areas from table FileAreas is displayed. In Lite, only the first four defined areas will be shown. In Maxess Retail only areas defined with the user's security code are available for selection. Zero (0) selects all authorized areas. 5. TABLE QUERIES 5.1 Query definition -------------------- To start a table query, the user has to select "S" (earch in table) from the main menu. A list of table fields is displayed. The user may choose one or more field numbers separated by commas and hit . By entering "*"(asterisk), all records from the table are displayed at once. By entering "+"(plus sign) all field numbers are selected. If there is a selection, the user has to specify a search criteria for each of the chosen fields. Condition prompts might be ignored by responding with . By default all conditions are combined with the AND logical operator, unless the OR keyword is explicitly used. Here is an example : Search in Files by: 1. FileName 3. Size 2. Location 4. Date Enter numbers (ex. 1,3,4) or +/* > 1,1,4,4 (T) FileName [".TXT" OR (T) FileName [".DOC" (D) Date !<1/1/93@ (D) Date <7/1/93 This query specification is translated as: "Find all file-records with extension TXT or DOC and dates between 1/1/93 and 7/1/93 sorted by date". Please notice the duplicate selection of fields 1 and 4 and the explicit use of the OR keyword. The "at" character (@) at the end of the first date condition determines the sort order. The sort order is always ascending. There is a field type shown in parenthesis in front of each field prompt. Field types have conditional operators related to them: Field Type Operators Description ---------- ---------------- ----------- (D)=date = or < or > (N)=number = or < or > (T)=text = or < or > or [ [ means "contain" (L)=logical =T or =Y T is "true"(or Y for "yes") =F or =N F is "false(or N for "no") any ! NOT (to be input first) any @ SORT BY (to be input last) All operators are considered comparison operators except !(NOT), AND and OR, which are logical operators. The order of precedence for the logical operators is : !(NOT), AND, OR. According to this rule, expressions with negation (!) are evaluated first, AND expressions next and OR expressions are evaluated last. Please,notice that operators are strictly related to their own field types and shouldn't be used with other field types. For instance, operator =T for logicals (L) cannot be used with text fields (T). 5.2 Query Output ---------------- The result of a query is a set of records matching the query criteria. The list of record fields to be displayed is in Prnstr, table TableList. There are two query output formats - horizontal and vertical. To use the vertical format Prnstr has to start with a plus (+) sign. The vertical format shows the fields from Prnstr on consecutive separate lines. This format is convenient for long Text or Memo fields. Example: Prnstr = +Name,State,Resume Output: --- Name : John Doe --- State : TX --- Resume : ...here are displayed the lines of the Memo field 'Resume'... With the horizontal format, the fields are displayed in columns on one line. This format is more suitable for short fields (numeric, date). Numeric fields are displayed right-justified, the others - left justified. Text and Memo fields are truncated to their width specified in Widstr. Example: Prnstr = Name,State,Zip Output: (field widths are defined in Widstr) Name State Zip --------------- ----- ----- John Doe TX 75086 6. SECURITY Security in Maxess is enforced through security codes. Each user has a security code assigned to him by the sysop after registration. This code is stored in field Security of table Users. Two or more users can have the same security code giving them equal privileges. The security code determines the ability to view and query certain tables, to access file areas and to transfer files. In Maxess Lite, there are three security code groups: Code group Privileges ---------- ---------- 0 to MaxNoFileXfer table query, messages, NO file transfer MaxNoFileXfer+1 to 9999 above + file transfer allowed 10000 to 32700 above + abort MAXESS allowed "MaxNoFileXfer" is a parameter chosen by the sysop during installation. It might be updated at any time with MAXESSIN.WAX and saved in MAXESS.INI. If MaxNoFileXfer is 0, file transfer privilege is given to all users. If MaxNoFileXfer is 32700, file transfer is turned off. Security of tables, fields and file areas is not implemented in Lite. In Maxess Lite, the first table defined in TableList will be the only one available for selection. In Maxess Retail, in addition of the above three privilege groups, the security codes allow access to tables, fields and file areas. Here below is a sample setup : Tables: Users TableList FileAreas ============ =================== =========== Fields: Sec. Usrnam Sec. Table Prnstr Sec. Area ---- ------ ---- ----- ------ ---- ---- 1000 oneK 1000 T1 a,b,c 1000 A1 1000 T2 e,f,g,h 1000 A3 1000 A4 ------------------------------------------------- 2000 twoK 2000 T2 f,h,e 2000 A3 2000 T3 +w,u,v 2000 A1 2000 T8 x,y,z The example shows descriptions for 2 security codes - 1000 and 2000. Users with security code 1000 can select Access tables T1 and T2, and see fields a,b,c or e,f,g,h as a result of their queries. Users with security code 2000 can select tables T2,T3 and T8, and file areas A3 and A1. Notice also the different display of table T2 - for security code 1000 the fields shown will be e,f,g,h, while for security code 2000 the fields shown will be f,h,e. This approach offers flexibility - the same table might be displayed differently for users with different security codes. Tables defined with security code 0(zero) are accessible to all users. 7. RUN-TIME ERRORS Run-time errors should not interrupt Maxess. They are trapped and recorded in the standard PROCOMM+ log file (PW.CLG). The log file is accessible by clicking the button "View Log File" on the main Maxess window or from PROCOMM+ menu bar (File-- Connection_Log--Edit). Here is the list of run-time errors: Err#1: Error during SQL search. The parameters of the search are recorded to facilitate the debugging process. Err#2: Action query error (similar to #1) Err#3: No tables available for selection The error is usually due to incorrect setup of TableList. Err#4: File not found Err#5: Insufficient disk space for upload on drive X The upload drive specified in MAXESS.INI should have at least 200KB free storage space. Err#6: Comma not allowed in fieldnames (table xxx) Maxess do not allow commas in fieldnames Err#7: Can't open message file Due to lack of disk space Err#8: Unable to open table xxx The definition in TableList do not match a table from the database Err#9: (reserved) Err#10: Unable to hangup System error, reset the modem and restart Maxess PWerr: Transfer aborted. Filename conflict Generated by Procomm+. The upload procedure consist of two steps. First the user is asked to enter the name of the file he wants to upload. Then MAXESS checks the upload directory and the table Files for possible matches with existing file names. If there is no file with the same name, the user is authorized to begin the upload. At this time however, he might enter a different filename. If this new (unchecked) name matches one from the upload directory, the existing file might get overwritten. This is the reason to implement a second check at the time of the transfer. Error message #8 notifies the user about the unfortunate mismatch between the two filenames he has entered. 8. LIMITATIONS AND RECOMMENDATIONS Both versions of Maxess - Lite and Retail, have these limitations: o The total length of all table names defined with the same security code in TableList should be less than 250. o The total length of all fieldnames of each table should be less than 200. When a table is selected, the program tries to read all the fieldnames and their types directly from the database. The result is sent back to Maxess as a string (255 chars max) including fieldnames, types and separators between them. If the table has too many fields or if their names are too long, the maximum length of 255 will be exceeded. o No commas are allowed in fieldnames. The comma is used in Maxess as list separator and therefore shouldn't be part of the list elements. o Filenames in table Files have to be unique across directories. It isn't permitted to have files with identical names in two different directories. o If you have an upload area defined in table FileAreas, the field Directory should contain the directory path already specified during installation in the UploadDir parameter of MAXESS.INI. If these two directory paths do not match, the users wouldn't find their uploaded files. Recommendations: o make sure the service table names in MAXESS.INI are accurate and exist in the database o do not rename fields in the service tables - Users,Messages,Files, FileAreas and TableList o if you have a HidStr in TableList, terminate it always with a comma o to speed up Maxess: a) create a small (~200KB) RAM drive b) after installation, copy the files Maxess.INI, Maxess.WAX and MaxessF.WAX (opt. Maxess.nws and Maxesspm.wax) to the RAM drive c) run Maxess.WAX from the RAM drive (Procomm+ -- Scripts -- Run) 9. DIFFERENCES BETWEEN Lite AND Retail VERSIONS Maxess Lite has nearly the full functionality of the Retail version. Nevertheless, certain restrictions apply: MAXESS Lite MAXESS Retail --------------------------------- ----------------------------- a) one table available for selection more than one table to select b) search on the first 5 fields only search on all fields/tables c) one user only support for multiple users d) security partially enforced security fully enforced e) documentation in ASCII file ASCII and HLP document files Explanation: a) In Lite, only the first table definition from TableList will be available for selection to all users, regardless of their security code. In Maxess Retail, several tables may be defined with the same security code. They all will be accessible for remote query by user(s) with matching security code(s). Table selection is done by choosing from the Main Menu. b) To start a table query in Maxess Lite, the user is presented with a list of up to five (5) fields. These are the first five fields of the table. If some of them are included in HidStr however, they are considered hidden and will not be displayed for selection. Maxess Retail doesn't have such limitation and would display all non-hidden fields of the selected table. c) A special script is included in Maxess Retail to ensure support for additional users. They all can dial-in simultaneously and work with the same Access database. The number of user lines is limited by the available Windows memory and the number of serial ports. d) In Lite, security codes are used only to determine clearance for file transfer and privilege to abort Maxess. In Retail, security is enforced in table selection, query display and file areas as well. 10. FUTURE ENHANCEMENTS Several new features are considered for implementation in the next version of Maxess: - updating tables; according to their security code, users will be authorized to remotely update/append records in Access tables - query macros; users will be able to execute their own predefined query macros instead of entering the search criteria field by field - ANSI support - maintenance Access modules/forms/reports for the sysop 11. LICENSE AND WARRANTY LICENSING AGREEMENT Licensed users are bound to the following licensing agreement. CONDITIONS: Maxess is not a public domain software. Users are granted alicense to use the program but HelgaSoft retains all rights thereto. HelgaSoft hereby grants you a limited license to use Maxess Lite for evaluation purposes for a period not to exceed thirty (30) days. If you intend to continue using the software and/or it's documentation after the thirty (30) day evaluation period, you MUST make a registration payment to HelgaSoft. Users may not modify or reverse engineer the software in any manner for profit or otherwise. Shareware distributors, including Bulletin Board Systems (BBSs), or users who might pass along HelgaSoft shareware may not modify the contents of any files or bundles of files as distributed by HelgaSoft. TERM: The license to use this program is effective until terminated. You may terminate the license by destroying all copies of this program. It will also be terminated upon failure to comply with any of the terms or conditions of this agreement. WARRANTY: THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. In addition, HelgaSoft specifically disclaims all warranties, expressed or implied, including but not limited to implied warranties of merchantability and fitness. In no event shall HelgaSoft be liable for any claims for lost profits or any other commercial damage, including but not limited to special, incidental, consequential or other damage. In no case shall HelgaSoft's liability exceed the license fees paid for the right to use the licensed software. GOVERNING LAW: This statement shall be construed, interpreted, and governed by the laws of the state of California, USA. AGREEMENT: By licensing Maxess Lite you agree to the above licensing agreement. 12. ORDERING AND SUPPORT The price to register Maxess Lite (shareware version) is $19.00. The price to purchase Maxess (retail version) is $99.00. Please, indicate the floppy disk size (5.25", 3.5" or either size). Registered users of Maxess Retail are provided with phone support. Site licenses (5+ copies) are negotiable and qualify for a rebate. Payment must be made in US$ funds by personal check, cashiers check, or money order. Alternately, you can send international postal money orders in US dollars. Please remit payment to: Chris Gerdji P.O.Box 371633 San Diego, CA 92137 For all questions and comments regarding Maxess, please contact HelgaSoft by Internet Email: 72103.1062@compuserve.com US Mail: HelgaSoft, POB 371633, San Diego, CA 92137 ------------------------------------------------------------------------- APPENDIX A PHONE MONITOR program MAXESSPM.WAX You can activate the Phone Monitor program just by renaming the file MAXESSPM.XXX to MAXESSPM.WAX and deactivate it by renaming it back to MAXESSPM.XXX . MAXESSPM allows you to use ONE telephone line for voice, answering machine and data (BBS). It detects a special sequence of calls and rings and activates the host MAXESS program for one user session. The special sequence to start remotely MAXESS is as follows : a) The user calls Maxess-host number, waits for 2 rings and hangs up This first call might be placed from a regular phone or a modem. b) The user waits for 10 seconds, but not more than a minute and 30 seconds and places a second (2nd) call from his remote computer. c) Maxess responds, asks for username and password, completes the session with the user and deactivates itself after the user logs off the system. MAXESSPM takes control again and begins waiting for the next call. Here below is a table illustrating the process: State Phone Computer ----- ------------- -------------------------------------------------- 1. (...) Silence, MAXESSPM waiting first call 2. * * (10-89) * The 1st call (2 rings) followed by the 2nd call (1 ring) after less than 90 seconds of silence. MAXESSPM stops and MAXESS is activated. User from remote computer connects to Maxess. After the online session is over, MAXESSPM returns to state 1. 3. * * (>90) Silence is too long, expected 2nd call didn't occur within the 90 seconds time limit. Return to state 1. 4. * * * Regardless of the state MAXESSPM is in, more than two consecutive rings means the current call is a voice call. The answering machine will pick up the line at the third ring. You can use MAXESSPM only if the answering machine setting is for 3 rings. rem: Phone states are * = ring (x) = silence for x seconds ------------------------------------------------------------------------- rem: To print this file with Notepad use Page Setup Margins: Left=.5" ; Right=0" * end maxess.txt *